package cn.jcby.app.excpt.enums;

import lombok.Getter;

import java.util.Arrays;

/**
 * @author: lihaotian
 * @since: 2023/12/7 23:38
 * @description
 **/
@Getter
public enum ExceptionMsgEnum {
    /**
     * base平台返回的异常信息
     */
    SELECT_NULL(4001, "查询数据为空"),
    INVOKE_IS_REJECT(4002, "请求被拒绝"),
    ILLEGAL_ARGUMENT_FORMAT(4003, "非法参数格式"),
    ILLEGAL_ARGUMENT(4004,"数据非法"),
    SYSTEM_EXCEPTION(4005, "系统异常"),

    ENERGY_NOT_ENOUGH(4006, "能量不足"),
    USER_NOT_EXIST(4007, "用户不存在"),
    USER_NOT_LOGIN(4008, "用户未登录"),
    USER_NOT_AUTH(4009, "用户未实名认证"),

    USER_NOT_EXIST_OR_PASSWORD_ERROR(4010, "用户不存在或密码错误"),
    //"您已参与该计划"
    USER_HAS_JOIN(4011, "您已参与该计划"),
    //"计划已结束"
    USER_HAS_JOIN_OVER(4012, "计划已结束"),
    //"计划不存在"
    USER_HAS_JOIN_NOT_EXIST(4013, "计划不存在"),

    //用户实名认证失败
    USER_AUTH_FAIL(4014, "用户实名认证失败"),
    //性别不满足需求
    USER_SEX_NOT_MATCH(4015, "性别不满足需求"),
    //自己不能参与自己的计划
    USER_CAN_NOT_JOIN_SELF(4016, "自己不能参与自己的计划"),
    //你没有参与该计划
    USER_NOT_JOIN(4017, "你没有参与该计划"),
    //进行中的计划不能删除
    USER_CAN_NOT_DELETE_IN_PROGRESS(4018, "进行中的计划不能删除"),
    //只有发起人可以删除
    USER_CAN_NOT_DELETE_NOT_CREATOR(4019, "只有发起人可以删除"),
    //只有参与者可以强制结束计划
    USER_CAN_NOT_FORCE_END(4020, "只有参与者可以强制结束计划"),
    //只有进行中的计划可以强制结束计划
    USER_CAN_NOT_FORCE_END_NOT_IN_PROGRESS(4021, "只有进行中的计划可以强制结束计划"),
    //不能邀请自己
    USER_CAN_NOT_INVITE_SELF(4022, "不能邀请自己"),
    //记录不存在
    RECORD_NOT_EXIST(4023, "记录不存在"),
    ;

    ExceptionMsgEnum(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    private Integer code ;
    private String msg ;

    public static String getMsg(Integer code) {
        ExceptionMsgEnum enums = Arrays.asList(values()).stream().filter(e -> e.code.equals(code)).findFirst().orElse(null);
        if (enums == null) {
            return "未知异常";
        } else {
            return enums.msg;
        }
    }
}
